package collection;

import java.util.Hashtable;

/**
 * HashTable
 */
public class HashTable_ {

    public static void main(String[] args) {

        /*
            HashTable存放的元素是键值对：k-v
            hashtable 的键和值都不能为null，否则会抛出空指针异常
            hashtable 使用方法基本上和 hashMap 一样
            hashtable 是线程安全的(synchronized)，hashMap 是线程不安全的

         */

        Hashtable hashtable = new Hashtable<>();
        hashtable.put("aaa", "bbb");
        hashtable.put("ccc", "ddd");
        //hashtable.put(null, "fff");//异常
        //hashtable.put("fff", null);//异常
        //hashtable.put(null, null);//异常
        hashtable.put("aaa", "hhh");//替换
        System.out.println("hashtable = " + hashtable);


        /*
            Hashtable 和 HashMap 对比

                            版本      线程安全        效率          允许null键null值
            HashMap         1.2       不安全          高                可以
            Hashtable       1.0        安全           较低              不可以
         */
    }
}
